﻿namespace DatabaseGroup.SSIS.SourceAdapters.View
{
    /// <summary>
    /// Stores values related to the controls of the Editor's General tab
    /// </summary>
    public class GeneralTabSettings : ITabSettings
    {
        /// <summary>
        /// Gets or sets the component name
        /// </summary>
        public string ComponentName { get; set; }

        /// <summary>
        /// Gets or sets the component description
        /// </summary>
        public string ComponentDescription { get; set; }

        /// <summary>
        /// Gets or sets the name of the file connection being used
        /// </summary>
        public string FileConnection { get; set; }

        /// <summary>
        /// Gets or sets the locale of the component
        /// </summary>
        public string Locale { get; set; }

        /// <summary>
        /// Gets or sets the component codepage
        /// </summary>
        public string CodePage { get; set; }

        /// <summary>
        /// Gets or sets if the source data is unicode
        /// </summary>
        public bool IsUnicode { get; set; }

        /// <summary>
        /// Gets or sets the text qualifier in use within the source data
        /// </summary>
        public string TextQualifier { get; set; }

        /// <summary>
        /// Gets or sets the header row delimiter in use within the source data
        /// </summary>
        public string HeaderRowDelimiter { get; set; }

        /// <summary>
        /// Gets or sets the number of initial header rows to be skipped
        /// </summary>
        public int HeaderRowsToSkip { get; set; }

        /// <summary>
        /// Gets or sets the number of initial data rows to be skipped
        /// </summary>
        public int DataRowsToSkip { get; set; }

        /// <summary>
        /// Gets or sets the escape character being used within the source data
        /// </summary>
        public string EscapeChar { get; set; }

        /// <summary>
        /// Gets or sets if the first data row contains the column names
        /// </summary>
        public bool ColumnNamesInFirstDataRow { get; set; }

        /// <summary>
        /// Gets or sets if white space should be removed from start/end of column data
        /// </summary>
        public bool TrimWhiteSpace { get; set; }

        /// <summary>
        /// Gets or sets if empty strings should be output as null values
        /// </summary>
        public bool TreatEmptyStringsAsNull { get; set; }
    }
}
